Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Modula-2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Modula-2"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Modula-2 rootpage-Modula-2 skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Modula-2</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#EEEEEE;color:black;">Modula<style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}


/* end https://fr.wikipedia.org/ */
</style>
</td></tr>



<tr><th scope="row">Date de première version
</th>
<td><a href="1977" title="1977">1977</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme</a>
</th>
<td><a href="G%C3%A9n%C3%A9ricit%C3%A9" title="Généricité">générique</a>, <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">procédural</a>, <a href="Programmation_imp%C3%A9rative" title="Programmation impérative">impératif</a>
</td>
</tr>
<tr>

<th scope="row">Auteur
</th>
<td><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a>
</td>
</tr>
<tr>





<th scope="row">Typage
</th>
<td><a href="Typage_statique" title="Typage statique">statique</a>, <a href="S%C3%BBret%C3%A9_du_typage" title="Sûreté du typage">sûr</a>, <a href="Syst%C3%A8me_nominatif_de_types" title="Système nominatif de types">nominatif</a>
</td>
</tr>
<tr>

<th scope="row">Dialectes
</th>
<td>Modula, Modula-1, Modula-2, ISO-Modula, Modula-3
</td>
</tr>
<tr>
<th scope="row">Influencé par
</th>
<td><a href="Algol_(langage)" title="Algol (langage)">Algol</a>, <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a>
</td>
</tr>
<tr>
<th scope="row">A influencé
</th>
<td><a href="Python_(langage)" title="Python (langage)">Python</a>, <a href="Oberon_(langage)" title="Oberon (langage)">Oberon</a>
</td>
</tr>
<tr>
<th scope="row">Implémentations
</th>
<td><a href="Windows" class="mw-redirect" title="Windows">Windows</a>, <a href="OS/2" title="OS/2">OS/2</a>, <a href="Solaris_(syst%C3%A8me_d'exploitation)" title="Solaris (système d'exploitation)">Solaris</a>, <a href="Macintosh" title="Macintosh">Macintosh</a>, <a href="Unix" title="Unix">Unix</a>
</td>
</tr>
<tr>







</tr>
</tbody></table>
<p><b>Modula</b> est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> créé en 1977 par <a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a> à l'<a href="%C3%89cole_polytechnique_f%C3%A9d%C3%A9rale_de_Zurich" title="École polytechnique fédérale de Zurich">École polytechnique fédérale de Zurich</a> pour le <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">système d'exploitation</a> et les applications de la station de travail <a href="Lilith_(ordinateur)" title="Lilith (ordinateur)">Lilith</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>. Sa syntaxe est une amélioration de celle du langage <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a> dont il reprend bon nombre de principes.
</p><p>Modula est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> <a href="Compilation_(informatique)" class="mw-redirect" title="Compilation (informatique)">compilé</a>, <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">procédural</a>, <a href="Typage_fort" title="Typage fort">fortement typé</a>, <a href="Module_(programmation)" title="Module (programmation)">modulaire</a>, facile à lire et à apprendre. Il est conçu pour enseigner la programmation et faciliter le développement des projets de grande ampleur.
</p><p>Par rapport à <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a>, il ajoute&nbsp;:
</p>
<ul><li>l'<a href="Encapsulation_(programmation)" title="Encapsulation (programmation)">encapsulation</a> en modules —&nbsp;d'où le nom du langage,</li>
<li>la notion d'interface, de <a href="Biblioth%C3%A8que_logicielle" title="Bibliothèque logicielle">bibliothèque</a>, d'unité de compilation&nbsp;; avec celle-ci, la programmation de haut et de «&nbsp;bas niveau&nbsp;» (permettant la définition de <i>primitives</i> ou fonctions de base au niveau le plus physique).</li>
<li>la <a href="Programmation_concurrente" title="Programmation concurrente">programmation concurrente</a> et une bien meilleure <a href="Portabilit%C3%A9_(informatique)" title="Portabilité (informatique)">portabilité</a>.</li></ul>
<p>En résumé, Modula-2 est plus puissant et plus complet que Pascal. La modularité étant mieux conçue et traitée qu'en <a href="C_(langage)" title="C (langage)">C</a>, Modula-2 s'avère plus fiable dans les grosses applications.
</p><p>Wirth a déclaré que ce langage était «&nbsp;celui qu'il aurait aimé concevoir quand il avait conçu Pascal&nbsp;».
</p>

<div class="mw-heading mw-heading2"><h2 id="Dialectes_et_langages_apparentés"><span id="Dialectes_et_langages_apparent.C3.A9s"></span>Dialectes et langages apparentés</h2></div>
<p><a href="Algol_(langage)" title="Algol (langage)">Algol W</a> et <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a> (Niklaus Wirth, 1970) sont les ancêtres de Modula.
</p><p><a href="Oberon_(langage)" title="Oberon (langage)">Oberon</a> est un descendant direct de Modula. (Niklaus Wirth, 1985)
</p><p>Modula a influencé les langages Java et C#
</p><p><b>dialectes</b>
</p>
<ul><li>Modula, aussi appelé Modula-1. Niklaus Wirth, 1977</li>
<li>Modula-2. Niklaus Wirth, 1978</li>
<li>ISO-Modula. International Organisation for Standardisation, 1987.</li>
<li>Modula-3. 1980</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Compilateurs_Modula">Compilateurs Modula</h2></div>
<ul><li><b>GNU Modula-2</b>&nbsp;: pour platformes <a href="Unix" title="Unix">Unix</a> - <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a>, <a href="MacOS_X" class="mw-redirect" title="MacOS X">MacOS X</a>, <a href="Linux" title="Linux">Linux</a>, <a href="Solaris_(syst%C3%A8me_d'exploitation)" title="Solaris (système d'exploitation)">Solaris</a></li>
<li><b><a rel="nofollow" class="external text" href="http://m2amiga.claudio.ch">M2Amiga</a></b>: pour <a href="Amiga" title="Amiga">Amiga</a></li>
<li><b>MacMETH</b>&nbsp;: pour <a href="Macintosh" title="Macintosh">Macintosh</a></li>
<li><b>MOCKA</b>&nbsp;: pour de nombreux <a href="Unix" title="Unix">Unix</a> - <a href="Sun_Microsystems" title="Sun Microsystems">Sun</a> <a href="Solaris_(syst%C3%A8me_d'exploitation)" title="Solaris (système d'exploitation)">Solaris</a>, <a href="Silicon_Graphics" title="Silicon Graphics">SGI</a> <a href="IRIX" title="IRIX">IRIX</a>, <a href="Hewlett_Packard" class="mw-redirect" title="Hewlett Packard">Hewlett Packard</a> <a href="HP-UX" title="HP-UX">HPUX</a>, <a href="Linux" title="Linux">Linux</a>, <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a></li>
<li><b>Objective Modula-2</b>&nbsp;: avec extensions pour Cocoa et <a href="GNUstep" title="GNUstep">GNUstep</a> sur platformes <a href="Unix" title="Unix">Unix</a></li>
<li><b>Stony Brook</b>&nbsp;: compilateur ISO-Modula et <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a> pour <a href="X86" title="X86">x86</a> (<a href="MS-DOS" title="MS-DOS">DOS</a>, <a href="Windows" class="mw-redirect" title="Windows">Windows</a>, <a href="Linux" title="Linux">Linux</a>) et <a href="Sun_Microsystems" title="Sun Microsystems">SUN</a> <a href="Solaris_(syst%C3%A8me_d'exploitation)" title="Solaris (système d'exploitation)">Solaris</a>. Stony Brook a cessé son activité le <time class="nowrap" datetime="2004-10-31" data-sort-value="2004-10-31">31 octobre 2004</time>.</li>
<li><b>XDS</b>: compilateur Modula-2 et <a href="Oberon_(langage)" title="Oberon (langage)">Oberon</a> pour <a href="X86" title="X86">x86</a> (<a href="Windows" class="mw-redirect" title="Windows">Windows</a>, <a href="OS/2" title="OS/2">OS/2</a>, <a href="Linux" title="Linux">Linux</a>)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Caractéristiques_du_langage_Modula"><span id="Caract.C3.A9ristiques_du_langage_Modula"></span>Caractéristiques du langage Modula</h2></div>
<p>La syntaxe générale de Modula est celle de <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a>. La différence majeure étant l'usage moins fréquent du mot clé <i>BEGIN</i>, et le remplacement du mot clé <i>PROGRAM</i> par <i>MODULE</i>, <i>IMPLEMENTATION MODULE</i> ou <i>DEFINITION MODULE</i> selon les cas.
</p><p>Contrairement au langage Pascal, qui n'est pas <a href="Sensibilit%C3%A9_%C3%A0_la_casse" title="Sensibilité à la casse">sensible à la casse</a>, les mots réservés et noms des éléments de base (fonctions, types et constantes) en Modula-2 sont obligatoirement écrits en majuscule.
</p><p><b>exemple</b>: <a href="Hello_World" class="mw-redirect" title="Hello World">Hello World</a> écrit en Modula&nbsp;:
</p>
<div class="mw-highlight mw-highlight-lang-modula2 mw-content-ltr" dir="ltr"><pre><span></span> <span class="kr">MODULE</span> <span class="n">Hello</span><span class="p">;</span>
<span class="kr">FROM</span> <span class="n">Terminal</span> <span class="kr">IMPORT</span> <span class="n">WriteLn</span><span class="p">,</span> <span class="n">WriteString</span><span class="p">;</span>
<span class="kr">BEGIN</span>
<span class="n">WriteString</span><span class="p">(</span><span class="s2">"Hello world!"</span><span class="p">);</span>
<span class="n">WriteLn</span><span class="p">;</span>
<span class="kr">END</span> <span class="n">Hello</span><span class="p">.</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Typage_fort_et_données_brutes"><span id="Typage_fort_et_donn.C3.A9es_brutes"></span>Typage fort et données brutes</h3></div>
<p>Modula est un langage <a href="Typage_fort" title="Typage fort">fortement typé</a>, qui interdit toute conversion entre deux types où il y a possibilité de perte d'information tout en permettant la manipulation de <i>données brutes</i> et non typées.
</p><p>Les types de base sont INTEGER (nombre entier), REAL (nombre à virgule flottante), CHAR (caractère), et BOOLEAN. (<a href="Bool%C3%A9en" title="Booléen">booléen</a>)
</p><p>Modula offre de nombreuses possibilités de créer des types complexes tels que <a href="Tableau_(structure_de_donn%C3%A9es)" title="Tableau (structure de données)">tableaux</a> <i>ARRAY</i>, enregistrements <i>RECORD</i>, <a href="Pointeur_(programmation)" title="Pointeur (programmation)">pointeurs typés</a> <i>POINTER</i>, <a href="Enumeration" class="mw-redirect" title="Enumeration">énumérations</a>, <a href="Intervalle_(math%C3%A9matiques)" title="Intervalle (mathématiques)">intervalles</a>, groupe de <a href="Drapeau_(informatique)" title="Drapeau (informatique)">flags</a> <i>SET OF</i>.
</p><p>Modula offre la possibilité de créer des <a href="Fonction_de_rappel" title="Fonction de rappel"><i>callback</i></a> par l'utilisation de types <i>PROCEDURE</i>.
</p><p>En invoquant le module System, Modula offre aussi la possibilité de manipuler des informations <i>brutes</i> et non typées, grâce aux types génériques <i>BYTE</i> et <i>WORD</i> (octet), <i>ADDRESS</i> (<a href="Pointeur_(programmation)" title="Pointeur (programmation)">pointeur non typé</a> + nombre) et <i>BITSET</i> (groupe de <a href="Drapeau_(informatique)" title="Drapeau (informatique)"><i>flags</i></a> non typé). Si un paramètre d'une fonction est de type <i>ARRAY OF BYTE</i> (tableau d'octets de taille quelconque), le paramètre pourra contenir en vrac <i>n'importe quel type d'information</i>. On peut ainsi profiter des avantages de la programmation physique dans les modules où elle est nécessaire, et d'une sécurité maximale partout ailleurs.
</p>
<div class="mw-heading mw-heading3"><h3 id="Modules,_interfaces,_encapsulation_et_unité_de_compilation"><span id="Modules.2C_interfaces.2C_encapsulation_et_unit.C3.A9_de_compilation"></span>Modules, interfaces, encapsulation et unité de compilation</h3></div>
<p>En Modula le mot clé MODULE sert à <a href="Encapsulation_(informatique)" class="mw-redirect" title="Encapsulation (informatique)">encapsuler</a> des éléments tels que des variables, des types ou des fonctions, c'est-à-dire à les rendre invisibles de l'extérieur du module, afin de cacher les détails internes de la construction du module.
</p><p>Un module peut contenir d'autres modules. Dans un programme de grande dimension, un seul fichier exécutable peut contenir plusieurs fonctionnalités, le <a href="Code_source" title="Code source">code source</a> de chaque fonctionnalité peut être réparti sur plusieurs fichiers sources. Les fichiers sont alors compilés par petits groupes appelés <i>unités de compilation</i>.
</p><p>La compilation peut se faire en plusieurs étapes, une <i>unité de compilation</i> à la fois.
</p><p>Pour un programme ordinaire l'unité de compilation est composée d'un seul fichier source qui commence par <i>MODULE</i>.
</p><p>Pour une bibliothèque l'unité de compilation est composée de deux fichiers source&nbsp;:
</p>
<ul><li>une <i>interface</i> qui commence par <i>DEFINITION MODULE</i>, où sont déclarés les éléments <i>rendus publics</i>, utilisables par les unités qui exploiteront ce module&nbsp;;</li>
<li>un <i>corps</i> qui commence par <i>IMPLEMENTATION MODULE</i>, qui contient les éléments privés, ainsi que les instructions.</li></ul>
<p>Pour utiliser dans un module B un élément (fonction, type, variable) provenant d'un module A, on ajoute au début du module B le mot clé <i>FROM</i> suivi du nom du module (ici A), puis du mot <i>IMPORT</i> et de la liste des éléments importés.
</p>
<div class="mw-heading mw-heading3"><h3 id="Primitives_et_bibliothèques"><span id="Primitives_et_biblioth.C3.A8ques"></span>Primitives et bibliothèques</h3></div>
<p>Le langage Modula comporte seulement quelques instructions&nbsp;: INC, DEC, INCL, EXCL, CHR et ORD.
</p><p>Dans les programmes écrits en Modula, la majorité des opérations se font par l'utilisation des primitives incluses dans un ensemble de <a href="Biblioth%C3%A8que_logicielle" title="Bibliothèque logicielle">bibliothèques</a> fournies avec le <a href="Compilateur" title="Compilateur">compilateur</a>. les fonctions dans ces bibliothèques peuvent varier selon le système et le compilateur.
</p><p>Le langage offre la possibilité de créer des bibliothèques, et toutes les bibliothèques de primitives fournies avec le compilateur sont écrites en Modula, exception faite des bibliothèques SYSTEM et COROUTINES.
</p><p>Chaque bibliothèque consiste en un fichier de définition <i>DEFINITION MODULE</i> et un fichier d'implémentation <i>IMPLEMENTATION MODULE</i>.
</p><p>Dans le fichier de définition sont déclarés les éléments qui seront <i>rendu publics</i> et donc utilisables par les programmes qui exploiteront ce module. Dans le fichier d'implémentation se trouvent les éléments privés, ainsi que les instructions.
</p>
<div class="mw-heading mw-heading3"><h3 id="Programmation_concurrente">Programmation concurrente</h3></div>
<p>La programmation concurrente en Modula est basée sur les <a href="Coroutine" title="Coroutine">coroutines</a> et les variables de contexte. Le contexte étant l'instruction qu'une coroutine était en train d'exécuter à un moment donné (voir <a href="Commutation_de_contexte" title="Commutation de contexte">commutation de contexte</a>).
</p><p>Le type de données contexte s'appelle <i>PROCESS</i> en Modula-1 et Modula-2 et <i>COROUTINE</i> en Modula-3.
</p><p>L'instruction <i>TRANSFER</i> permet d'arrêter l'exécution de la coroutine en cours <i>A</i>, et de relancer l'exécution d'une coroutine quelconque <i>B</i>. le contexte d'exécution de la coroutine <i>B</i> est passé en paramètre. La coroutine <i>A</i> sera suspendue - l'exécution de l'instruction TRANSFER est ne se terminera pas - jusqu'à ce qu'une autre coroutine utilise l'instruction <i>TRANSFER</i>.
</p><p>L'instruction <i>IOTRANSFER</i> permet d'arrêter l'exécution de la coroutine en cours <i>A</i> et de relancer l'exécution d'une coroutine quelconque <i>B</i> jusqu'à ce qu'une <a href="Interruption_(informatique)" title="Interruption (informatique)">interruption</a> matérielle survienne. La coroutine <i>A</i> reste suspendue jusqu'à la venue de l'interruption.
</p><p>Une instruction permet de créer un nouveau contexte pour une coroutine.
</p><p>Ces trois instructions suffisent à réaliser un <a href="Noyau_de_syst%C3%A8me_d'exploitation" title="Noyau de système d'exploitation">noyau multitâche préemptif</a>, des <a href="Processus_l%C3%A9ger" class="mw-redirect" title="Processus léger">thread légers</a>, ainsi que des mécanismes de <a href="Synchronisation_(multit%C3%A2ches)" title="Synchronisation (multitâches)">synchronisation</a>. Des mécanismes qui sont souvent inclus dans les bibliothèques fournies avec le compilateur Modula.
</p>
<div class="mw-heading mw-heading3"><h3 id="Programmation_de_haut_niveau_et_portabilité"><span id="Programmation_de_haut_niveau_et_portabilit.C3.A9"></span>Programmation de haut niveau et portabilité</h3></div>
<p>Modula est un langage de programmation de haut niveau, c'est-à-dire qu'il permet d'écrire un programme sous une forme proche de la pensée humaine, et cache les détails techniques de la machine sur laquelle le programme va être exécuté.
</p><p>Un langage de programmation de haut niveau permet d'écrire des programmes portables. C'est-à-dire qu'un programme écrit pour un système peut, moyennant quelques changements mineurs, être compilé de nouveau sur un autre système.
</p><p>Pour faciliter les modifications, les éléments du langage qui peuvent différer d'un système à l'autre sont encapsulés dans les modules SYSTEM et COROUTINE. Il y a notamment les <a href="Type_(informatique)" title="Type (informatique)">types de données</a> de bas niveau BYTE, ADDRESS, BITSET, PROCESS et COROUTINE. ainsi un module qui risque de demander des changements peut être repéré facilement par le fait qu'il importe des éléments du module SYSTEM ou COROUTINE.
</p><p>La majorité des instructions dans un programme écrit en Modula consiste à utiliser des fonctions incluses dans les bibliothèques fournies avec le compilateur. Tout comme dans le langage <a href="C_(langage)" title="C (langage)">C</a>, il existe une suite de bibliothèques standards et communes à tous les compilateurs, à la suite de laquelle se rajoutent diverses bibliothèques, différentes d'un compilateur à l'autre.
</p>
<div class="mw-heading mw-heading2"><h2 id="Lilith">Lilith</h2></div>
<p>Lilith est le nom d'une <a href="Station_de_travail" title="Station de travail">station de travail</a> conçue en 1978 par l'<a href="%C3%89cole_polytechnique_f%C3%A9d%C3%A9rale_de_Zurich" title="École polytechnique fédérale de Zurich">École polytechnique fédérale de Zurich</a>, et dont l'environnement logiciel est entièrement écrit en Modula.
</p><p>Cet environnement inclut un compilateur, un système d'exploitation, un environnement graphique et divers outils.
Le développement de la machine était à la fois un exercice grandeur nature pour les élèves des facultés d'électronique et d'informatique de l'université, et une occasion d'évaluer les qualités et les défauts de Modula sur les projets de grande ampleur.
Le processeur utilisait un M-code, et un bus rapide pour l'affichage graphique.
</p>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<ul><li>Modula-3&nbsp;<a href="https://en.wikipedia.org/wiki/Modula-3" class="extiw external" title="en:Modula-3"><span class="indicateur-langue" title="Article en anglais&nbsp;: «&nbsp;Modula-3&nbsp;»">(en)</span></a> qui a été conçu comme un successeur de la version améliorée de Modula-2, Modula-2+&nbsp;<a href="https://en.wikipedia.org/wiki/Modula-2%2B" class="extiw external" title="en:Modula-2+"><span class="indicateur-langue" title="Article en anglais&nbsp;: «&nbsp;Modula-2+&nbsp;»">(en)</span></a>.</li>
<li><a href="Lilith_(ordinateur)" title="Lilith (ordinateur)">Lilith</a>, la station de travail pour laquelle fût conçu Modula-2</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Références"><span id="R.C3.A9f.C3.A9rences"></span>Références</h3></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="https://people.inf.ethz.ch/wirth/projects.html"><cite style="font-style:normal;">Summary of projects by N. Wirth, 1962 - 1999</cite></a>&nbsp;», sur <span class="italique">people.inf.ethz.ch</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2024-11-19" data-sort-value="2024-11-19">19 novembre 2024</time>)</small></span></span>
</li>
</ol></div>
</div>
<p><span class="ouvrage" id="Wirth1982"><span class="ouvrage" id="Niklaus_Wirth1982"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Niklaus Wirth, <cite class="italique" lang="en">Programming in Modula-2</cite>, Berlin, <a href="Springer_Science%2BBusiness_Media" title="Springer Science+Business Media">Springer-Verlag</a>, <time>1982</time>, 176&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">3-540-11674-5</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Programming+in+Modula-2&amp;rft.place=Berlin&amp;rft.pub=Springer-Verlag&amp;rft.aulast=Wirth&amp;rft.aufirst=Niklaus&amp;rft.date=1982&amp;rft.tpages=176&amp;rft.isbn=3-540-11674-5&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AModula-2"></span></span></span>
</p><p><abbr class="abbr indicateur-langue" title="Langue : français">(fr)</abbr>
<span class="ouvrage" id="Wirth1984"><span class="ouvrage" id="Niklaus_Wirth1984">Niklaus Wirth (<abbr class="abbr" title="traduction">trad.</abbr>&nbsp;Jacques André), <cite class="italique">Programmer en Modula-2</cite>, Lausanne, Presses Polytechniques et Universitaires Romandes, <time>1984</time>, 263&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">2-88074-063-0</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Programmer+en+Modula-2&amp;rft.place=Lausanne&amp;rft.pub=Presses+Polytechniques+et+Universitaires+Romandes&amp;rft.aulast=Wirth&amp;rft.aufirst=Niklaus&amp;rft.date=1984&amp;rft.tpages=263&amp;rft.isbn=2-88074-063-0&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AModula-2"></span></span></span>
</p>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external free" href="http://www.ethistory.ethz.ch/rueckblicke/departemente/dinfk/weitere_seiten/lilith/index_EN">http://www.ethistory.ethz.ch/rueckblicke/departemente/dinfk/weitere_seiten/lilith/index_EN</a></li>
<li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external free" href="http://www.arjay.bc.ca/Modula-2/m2faq.html">http://www.arjay.bc.ca/Modula-2/m2faq.html</a> Modula-2 FAQ</li></ul>

<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2024-11-20" href="https://fr.wikipedia.org/wiki/?title=Modula-2&amp;oldid=220444882">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>